package org.nf.box.service;

import org.nf.box.domain.Post;
import org.nf.box.web.vo.PostVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @Author lzp
 * @Date 2024-12-10
 */
public interface PostService {

    /**
     * 根据帖子状态查询所有帖子
     * @param status 帖子状态
     * @param userId 用户id
     * @return 帖子列表
     */
    List<PostVO> getPosts(String status,Integer userId);

    /**
     *  获取视频帖子
     * @param status 状态
     * @param userId 用户id
     * @return 帖子列表
     */
    List<PostVO> getVideo(String status,Integer userId);

    /**
     *  获取推荐帖子
     * @param status 状态
     * @param userId 用户id
     * @return 帖子列表
     */
    List<PostVO> getRecommend(String status,Integer userId);

    /**
     * 获取帖子详情
     * @param postId 帖子id
     * @param userId 用户id
     * @return 帖子
     */
    PostVO postDetails(Integer postId,Integer userId);

    /**
     * 发帖
     * @param post 要发布的帖子
     * @param prefix 上传地址
     * @param files 文件
     */
    void createPost(Post post,String prefix,MultipartFile[] files);

    /**
     * 文件上传
     * @param prefix 上传地址
     * @param files 文件
     */
    void upload(String prefix, MultipartFile[] files);

    /**
     * 编辑帖子
     * @param post 要修改的帖子
     * @param prefix 上传地址
     * @param files 文件
     */
    void updatePost(Post post,String prefix,MultipartFile[] files);

    /**
     * 删帖
     * @param postId 帖子id
     */
    void deletePost(Integer postId);

    /**
     * 移除文件
     * @param images 所有的文件名
     */
    void remove(String[] images);
}
